package com.ooqiu.gaming.injector.components;

import android.app.Application;

import com.ooqiu.gaming.GamingApp;
import com.ooqiu.gaming.api.FileManager;
import com.ooqiu.gaming.api.GamingApi;
import com.ooqiu.gaming.api.repository.InformationRepository;
import com.ooqiu.gaming.base.BaseActivity;
import com.ooqiu.gaming.components.storage.UserStorage;
import com.ooqiu.gaming.injector.modules.ApiModule;
import com.ooqiu.gaming.injector.modules.AppModule;
import com.ooqiu.gaming.injector.modules.DBModule;
import com.ooqiu.greendao.DaoSession;
import com.umeng.socialize.UMShareAPI;

import javax.inject.Singleton;

import dagger.Component;


@Singleton
@Component(modules = {AppModule.class, DBModule.class, ApiModule.class})
public interface AppComponent {
    GamingApp getAppContext();

    DaoSession getDaoSession();

    GamingApi getGamingApi();

    InformationRepository getRepository();

    UserStorage getUserStorage();
    FileManager getFileManager();
    UMShareAPI getUMShareAPI();

    void inject(Application application);

    void inject(BaseActivity activity);
}
